﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using nmConnectionDatabase;
using nmUsuarios;

namespace DarkPassenger
{
    public partial class MenuUsuarios : Form
    {
        //Se crea el Objeto CONEXIONDB. Se realiza la Conexion y se pasa la Ruta como parametro
        ConexionDB Conexion = new ConexionDB("Data Source=localhost;Initial Catalog=TPVideoJuegos;Integrated Security=True");

        //int RowGrid;
        //int ColumnGrid;
        
        public MenuUsuarios()
        {
            InitializeComponent();
            cmbBusqueda.SelectedIndex = 0;
        }


        // ****************************************************************************************************
        // ****************************************************************************************************
        // ****************************************************************************************************
        // ********************************** BOTONES Y MENUES ********************************************
        // ****************************************************************************************************
        // ****************************************************************************************************
        // ****************************************************************************************************

        private void CargarGrid()
        {
            string Consulta = "Select * from Usuarios";
            //Se carga el DataSet de la Conexion pasandole la Query y el NombreTabla
            Conexion.CargarDataSet(Consulta, "Usuarios");
            grdUsuarios.DataSource = Conexion.GetDataSet().Tables[0];
            grdUsuarios.ReadOnly = true;
            Conexion.Close();
        }

        private void CargarGridConsulta(string Consulta)
        {
            Conexion.CargarDataSet(Consulta, "Usuarios");
            grdUsuarios.DataSource = Conexion.GetDataSet().Tables[0];
            Conexion.Close();
        }

        private void MenuUsuarios_Load(object sender, EventArgs e)
        {
            CargarGrid();

            cmbBusqueda.SelectedIndex = 0;
            Autocomplete.SetAutcomplete(ref txtBuscador, ref Conexion, "IDUsuario");
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            Form EliminarUsuario = new MenuUsuarios_EliminarUsuario(Conexion);
            EliminarUsuario.ShowDialog();
            CargarGrid();
        }

        private void btnActualizar_Click(object sender, EventArgs e)
        {
            Usuarios User = new Usuarios();
            User.AltaUsuarios(Conexion.GetDataSet(), Conexion.GetRutaConexion());
            User.BajaUsuarios(Conexion.GetDataSet(), Conexion.GetRutaConexion());
            User.ModificarUsuario(Conexion.GetDataSet(), Conexion.GetRutaConexion());
            CargarGrid();
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            Form NuevoUsuario = new MenuUsuarios_NuevoUsuario(Conexion);
            NuevoUsuario.ShowDialog();
            CargarGrid();
        }

        private void MenuUsuarios_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Close();
            this.Dispose();
        }

        private void btnBuscador_Click(object sender, EventArgs e)
        {
            if(cmbBusqueda.Text == "ID Usuario")
            CargarGridConsulta("Select * from Usuarios where Usuarios.IDUsuario = " + "'" + txtBuscador.Text + "'");
            if(cmbBusqueda.Text == "Nombre")
            CargarGridConsulta("Select * from Usuarios where Usuarios.Nombre = " + "'" + txtBuscador.Text + "'");

            txtBuscador.Text = "";
        }

        private void btnReiniciar_Click(object sender, EventArgs e)
        {
            CargarGrid();
        }

        private void grdUsuarios_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {

            int rowindex = grdUsuarios.CurrentCell.RowIndex;
            int columnindex = grdUsuarios.CurrentCell.ColumnIndex;
            MenuUsuarios_UsuarioSeleccionado form = new MenuUsuarios_UsuarioSeleccionado(grdUsuarios.SelectedCells);
            form.ShowDialog();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
                DataGridViewRow UserSeleccionado = grdUsuarios.CurrentRow;
                MenuUsuarios_ModificarUsuario form = new MenuUsuarios_ModificarUsuario(Conexion, UserSeleccionado);
                form.ShowDialog();
                CargarGrid();
        }

        private void cmbBusqueda_SelectionChangeCommitted(object sender, EventArgs e)
        {
            switch (cmbBusqueda.SelectedIndex)
            {
                case 0:
                    Autocomplete.SetAutcomplete(ref txtBuscador, ref Conexion, "IDUsuario");
                    break;
                case 1:
                    Autocomplete.SetAutcomplete(ref txtBuscador, ref Conexion, "Nombre");
                    break;
                default:
                    break;
            }
        }
    }
}
